package com.ruoyi.work.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

import static com.ruoyi.common.annotation.Excel.Type.EXPORT;
import static com.ruoyi.common.annotation.Excel.Type.IMPORT;

/**
 * 稿件管理对象 work_paper
 *
 * @author ruoyi
 * @date 2021-12-26
 */

public class WorkPaper2 extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 稿件ID
     */
    private Long paperId;

    /**
     * 稿件类型
     */
    @Excel(name = "稿件类型", dictType = "work_paper_type", combo = {"网络", "微博", "微信公众号", "平面", "APP客户端", "刷量"})
    private String paperType;

    /**
     * 稿件名称
     */
    @Excel(name = "稿件名称", prompt = "必填")
    private String paperName;

    /**
     * 客户名称
     */
    @Excel(name = "客户名称", type = EXPORT)
    private String customerName;

    private String customerName_;

    /**
     * 客户所属公司
     */
    @Excel(name = "客户所属公司", type = EXPORT)
    private String companyName;

    private Long customerId;

    /**
     * 媒体名称
     */
    @Excel(name = "媒体名称", prompt = "必填")
    private String mediaName;

    private Long mediaId;
    /**
     * 平台
     */
    @Excel(name = "平台", dictType = "work_platform")
    private String platform;

    /**
     * 媒介
     */
    @Excel(name = "媒介")
    private String mediaCreate;
    /**
     * 媒介
     */

    private String mediaCreateLogin;
    /**
     * 刊登链接
     */
    @Excel(name = "刊登链接",width = 30 )
    private String publishLink;

    /**
     * 刊登时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "刊登时间", width = 20, dateFormat = "yyyy-MM-dd")
    private Date publishDate;

    /**
     * 稿件费
     */
    @Excel(name = "稿件费", scale = 2,type = Excel.Type.EXPORT)
    private BigDecimal paperPrice;

    /**
     * 刷量费
     */
    //@Excel(name = "刷量费", scale = 2,type = Excel.Type.EXPORT)
    private BigDecimal flowPrice;

    /**
     * 成本
     */

    private BigDecimal cost;

    /**
     * 实际成本
     */
    @Excel(name = "实际成本", scale = 2,type = Excel.Type.EXPORT)
    private BigDecimal actualCost;

    /**
     * 单价
     */

    private BigDecimal price;

    /**
     * 字数
     */

    private Long words;

    /**
     * 实际总价
     */

    private BigDecimal actualPrice;

    /**
     * 价格类型
     */
    @Excel(name = "价格类型",dictType = "work_price_type", combo = {"微任务直发价", "微任务转发价", "直发价", "转发价", "头条", "次条"})
    private String priceType;

    /**
     * 销账时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@Excel(name = "销账时间", width = 30, dateFormat = "yyyy-MM-dd", type = Excel.Type.EXPORT)
    private Date offAccountDate;

    /**
     * 提成
     */
    //@Excel(name = "提成", type = Excel.Type.EXPORT)
    private BigDecimal commision;

    /**
     * 提成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@Excel(name = "提成时间", width = 30, dateFormat = "yyyy-MM-dd", type = Excel.Type.EXPORT)
    private Date commisionDate;

    /**
     * 刷量备注
     */
    //@Excel(name = "刷量备注",type = Excel.Type.EXPORT)
    private String flowRemark;

    /**
     * 刷量链接
     */
   // @Excel(name = "刷量链接",type = Excel.Type.EXPORT)
    private String flowLink;

    /**
     * 原始链接
     */

    private String originalLink;

    /**
     * 上传稿件
     */
    private String uploadFile;


    /**
     * 回款周期
     */

    private String paybackPeriod;

    /**
     * 发票ID
     */
    private Long invoiceId;

    /**
     * 稿件状态
     */
    @Excel(name = "稿件状态",dictType = "work_paper_status", combo = {"正常","处理中","拒稿","已刊登","非拒稿","已见报"})
    private String paperStatus;

    private Long isCheck;

    private String isInvoice;
    private String isCancel;

    private Long requestId;
    private String requestStatus;
    @Excel(name = "稿件所属")
    private String belong;
    private Long contactId;

    @Excel(name = "联系人",type = EXPORT)
    private String contacts;

    public Date getPayTime() {
        return payTime;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }
    @Excel(name = "支付时间",  dateFormat = "yyyy-MM-dd", type = EXPORT)
    private Date payTime;


    public Long getContactId() {
        return contactId;
    }

    public void setContactId(Long contactId) {
        this.contactId = contactId;
    }

    public String getContacts() {
        return contacts;
    }

    public void setContacts(String contacts) {
        this.contacts = contacts;
    }

    public String getBelong() {
        return belong;
    }

    public void setBelong(String belong) {
        this.belong = belong;
    }

    public Long getRequestId() {
        return requestId;
    }

    public void setRequestId(Long requestId) {
        this.requestId = requestId;
    }

    public String getRequestStatus() {
        return requestStatus;
    }

    public void setRequestStatus(String requestStatus) {
        this.requestStatus = requestStatus;
    }

    public String getIsCancel() {
        return isCancel;
    }

    public void setIsCancel(String isCancel) {
        this.isCancel = isCancel;
    }

    public String getIsInvoice() {
        return isInvoice;
    }

    public void setIsInvoice(String isInvoice) {
        this.isInvoice = isInvoice;
    }

    public Long getIsCheck() {
        return isCheck;
    }

    public void setIsCheck(Long isCheck) {
        this.isCheck = isCheck;
    }

    public void setPaperId(Long paperId) {
        this.paperId = paperId;
    }

    public Long getPaperId() {
        return paperId;
    }

    public void setPaperType(String paperType) {
        this.paperType = paperType;
    }

    public String getPaperType() {
        return paperType;
    }

    public void setPaperName(String paperName) {
        this.paperName = paperName;
    }

    public String getPaperName() {
        return paperName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getCustomerName() {
        return customerName;
    }

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getCompanyName() {
        return companyName;
    }

    public String getCustomerName_() {
        return customerName_;
    }

    public void setCustomerName_(String customerName_) {
        this.customerName_ = customerName_;
    }

    public void setMediaName(String mediaName) {
        this.mediaName = mediaName;
    }

    public Long getMediaId() {
        return mediaId;
    }

    public void setMediaId(Long mediaId) {
        this.mediaId = mediaId;
    }

    public String getMediaName() {
        return mediaName;
    }

    public void setPlatform(String platform) {
        this.platform = platform;
    }

    public String getPlatform() {
        return platform;
    }

    public void setMediaCreate(String mediaCreate) {
        this.mediaCreate = mediaCreate;
    }

    public String getMediaCreate() {
        return mediaCreate;
    }

    public String getMediaCreateLogin() {
        return mediaCreateLogin;
    }

    public void setMediaCreateLogin(String mediaCreateLogin) {
        this.mediaCreateLogin = mediaCreateLogin;
    }

    public void setPublishLink(String publishLink) {
        this.publishLink = publishLink;
    }

    public String getPublishLink() {
        return publishLink;
    }

    public void setPublishDate(Date publishDate) {
        this.publishDate = publishDate;
    }

    public Date getPublishDate() {
        return publishDate;
    }

    public void setPaperPrice(BigDecimal paperPrice) {
        this.paperPrice = paperPrice;
    }

    public BigDecimal getPaperPrice() {
        return paperPrice;
    }

    public void setFlowPrice(BigDecimal flowPrice) {
        this.flowPrice = flowPrice;
    }

    public BigDecimal getFlowPrice() {
        return flowPrice;
    }

    public void setCost(BigDecimal cost) {
        this.cost = cost;
    }

    public BigDecimal getCost() {
        return cost;
    }

    public void setActualCost(BigDecimal actualCost) {
        this.actualCost = actualCost;
    }

    public BigDecimal getActualCost() {
        return actualCost;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setWords(Long words) {
        this.words = words;
    }

    public Long getWords() {
        return words;
    }

    public void setActualPrice(BigDecimal actualPrice) {
        this.actualPrice = actualPrice;
    }

    public BigDecimal getActualPrice() {
        return actualPrice;
    }

    public void setPriceType(String priceType) {
        this.priceType = priceType;
    }

    public String getPriceType() {
        return priceType;
    }

    public void setOffAccountDate(Date offAccountDate) {
        this.offAccountDate = offAccountDate;
    }

    public Date getOffAccountDate() {
        return offAccountDate;
    }

    public void setCommision(BigDecimal commision) {
        this.commision = commision;
    }

    public BigDecimal getCommision() {
        return commision;
    }

    public void setCommisionDate(Date commisionDate) {
        this.commisionDate = commisionDate;
    }

    public Date getCommisionDate() {
        return commisionDate;
    }

    public void setFlowRemark(String flowRemark) {
        this.flowRemark = flowRemark;
    }

    public String getFlowRemark() {
        return flowRemark;
    }

    public void setOriginalLink(String originalLink) {
        this.originalLink = originalLink;
    }

    public String getOriginalLink() {
        return originalLink;
    }

    public void setUploadFile(String uploadFile) {
        this.uploadFile = uploadFile;
    }

    public String getUploadFile() {
        return uploadFile;
    }



    public void setPaybackPeriod(String paybackPeriod) {
        this.paybackPeriod = paybackPeriod;
    }

    public String getPaybackPeriod() {
        return paybackPeriod;
    }

    public Long getInvoiceId() {
        return invoiceId;
    }

    public void setInvoiceId(Long invoiceId) {
        this.invoiceId = invoiceId;
    }

    public String getFlowLink() {
        return flowLink;
    }

    public void setFlowLink(String flowLink) {
        this.flowLink = flowLink;
    }

    public String getPaperStatus() {
        return paperStatus;
    }

    public void setPaperStatus(String paperStatus) {
        this.paperStatus = paperStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("paperId", getPaperId())
                .append("paperType", getPaperType())
                .append("paperName", getPaperName())
                .append("customerName", getCustomerName())
                .append("companyName", getCompanyName())
                .append("mediaName", getMediaName())
                .append("platform", getPlatform())
                .append("mediaCreate", getMediaCreate())
                .append("publishLink", getPublishLink())
                .append("publishDate", getPublishDate())
                .append("paperPrice", getPaperPrice())
                .append("flowPrice", getFlowPrice())
                .append("cost", getCost())
                .append("actualCost", getActualCost())
                .append("price", getPrice())
                .append("words", getWords())
                .append("actualPrice", getActualPrice())
                .append("priceType", getPriceType())
                .append("offAccountDate", getOffAccountDate())
                .append("commision", getCommision())
                .append("commisionDate", getCommisionDate())
                .append("flowRemark", getFlowRemark())
                .append("flowLink", getFlowLink())
                .append("originalLink", getOriginalLink())
                .append("uploadFile", getUploadFile())
                .append("paybackPeriod", getPaybackPeriod())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("invoiceId", getInvoiceId())
                .append("paperStatus", getPaperStatus())
                .toString();
    }
}
